/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.logicacontrol.SolicitarCambioCarrera;

import web.util.Constantes;
import entidad.cambioCarrera.Solicitudcambiocarrera;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import wasolicitudesfiec.CambioCarreraoEspecializacion.HistorialCambioCarrera;
import wasolicitudesfiec.general.MensajeException;
import wasolicitudesfiec.logicacontrol.*;

/**
 *
 * @author kabad
 */
public class CTRL_HistorialCambioCarrera extends CTRL_Base {

    private HistorialCambioCarrera gui;
    private LogicaHistorial logicaHistorial;

    public CTRL_HistorialCambioCarrera(HistorialCambioCarrera gui, FacesContext facesContext) {
        super(facesContext);
        this.gui = gui;
        String instancia;
        instancia = (String) externalContext.getRequestParameterMap().get("instancia");
        if (instancia != null) {
            externalContext.getSessionMap().put("instancia", instancia);
        }
    }

    public String getNombreInstanciaProceso() {
        String instancia;
        instancia = (String) externalContext.getSessionMap().get("instancia");
        return instancia;
    }

    public void inicializar() throws MensajeException {

        try {
            String actividad = externalContext.getRequestParameterMap().get("actividad");
            logicaHistorial = new LogicaHistorial();
            int idNodo = Integer.parseInt(externalContext.getRequestParameterMap().get("idNodo"));
            int idSolicitud = new Integer(logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.idSolicitudActividad));
            gui.getMenu().setTitulo("Actividad: " + actividad);
            Solicitudcambiocarrera solicitud = logica.getLogCambioCarrera().leerSolicitudCambioNivel2(idSolicitud);
            String decisionRevision = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionRevision);

            if (Constantes.SolicitarCambio.solicitarCambio.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(true);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarCambio.revisarSolicitud.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(true);
                if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                    gui.getPanelsolicitarInforme().setRendered(true);
                } else {
                    gui.getPanelsolicitarInforme().setRendered(false);
                }
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);

            } else if (Constantes.SolicitarConvalidacion.volverASolicitar.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(true);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarCambio.emitirInforme.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(true);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarCambio.revisarInforme.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(true);
                gui.getPanelenvioSolicitudSTA().setRendered(false);
            } else if (Constantes.SolicitarCambio.imprimirInformeSTA.equals(actividad)) {
                gui.getPanelsolicitarCambio().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInforme().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelenvioSolicitudSTA().setRendered(true);
            }
            gui.getLblFecha().setText(solicitud.getFechamodificacion());
            if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                gui.getLblDecision().setText(decisionRevision + " al coordinador de la carrera.");
            } else {
                gui.getLblDecision().setText(decisionRevision + " la solicitud");
            }
            String decisionEvaluacion = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionEvaluacion);
            gui.getLblDecision1().setText(decisionEvaluacion + " la solicitud");
            String decisionVolverASolicitar = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionVolverASolicitar);
             gui.getLblDecisionVolverASolicitar().setText(decisionVolverASolicitar + " la solicitud");
            gui.setIdSolicitud(solicitud.getIdSolicitudCambioCarrera());

            if (solicitud.getFkIdSubDecano() != 0) {
                gui.getLblSubDecano().setText(solicitud.getSubDecano().getPersona().toString());
                gui.getLblSubDecano1().setText(solicitud.getSubDecano().getPersona().toString());

            }
            if (solicitud.getFechacreacion() != null) {
                gui.getFecha().setText(solicitud.getFechacreacion());
            }
            if (solicitud.getFkidestudiante() != 0) {
                gui.getLblSolicitante1().setText(solicitud.getEstudiante().getPersona().toString());
                gui.getSolicitante().setText(solicitud.getEstudiante().getPersona().toString());
                gui.getMatricula().setText(solicitud.getEstudiante().getMatricula());
            }
            if (solicitud.getFkIdCarreraActual() != 0) {
                gui.getCarreraActual().setText(solicitud.getCarreraActual().getNombre());
            }
            if (solicitud.getFkIdCarreraNueva() != 0) {
                gui.getCarreraNueva().setText(solicitud.getCarreraNueva().getNombre());
            }
            if ((solicitud.getObservacionEstudiante() == null) || solicitud.getObservacionEstudiante().equals("")) {
                gui.getObservacionesEstudiante().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getObservacionesEstudiante().setValue(solicitud.getObservacionEstudiante());
            }
            if (solicitud.getFkIdProfesor() != 0) {
                gui.getLblEvaluador().setText(solicitud.getProfesor().getPersona().toString());
                gui.getLblEvaluador1().setText("El informe del evaluador " + solicitud.getProfesor().getPersona().toString() + " es: ");
                gui.getLblInforme().setText(solicitud.getInforme());
            }
            if ((solicitud.getObservacionCoordinador() == null) || solicitud.getObservacionCoordinador().equals("")) {
                gui.getTxtaObservacionesCoordinador().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesCoordinador().setValue(solicitud.getObservacionCoordinador());
            }
            if ((solicitud.getObservacionSubDecano() == null) || solicitud.getObservacionSubDecano().equals("")) {
                gui.getTxtaObservacionesSubDecano().setValue(Constantes.Mensajes.noComentarios);
                gui.getTxtaObservacionesSubDecano1().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesSubDecano().setValue(solicitud.getObservacionSubDecano());
                gui.getTxtaObservacionesSubDecano1().setValue(solicitud.getObservacionSubDecano());
            }
            if(solicitud.getFkIdSecretaria()!=0){
                gui.getLblSecretaria().setText(solicitud.getSecretaria().toString());
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(CTRL_HistorialCambioCarrera.class.getName()).log(Level.SEVERE, null, ex);
            throw new MensajeException(Constantes.Mensajes.noMuestra);
        }


    }
}
